
package com.crowdfunding.circle.permission.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.crowdfunding.circle.common.dao.BaseDao;
import com.crowdfunding.circle.permission.entity.PermissionVO;
import com.crowdfunding.circle.permission.param.PermissionParam;

/**
 * 权限信息Dao实现类
 *
 * @author 朱国军
 * @version 2016年03月23日 朱国军
 */
@Repository("permissionDao")
public class PermissionDao extends BaseDao<PermissionVO> {

    /**
     * 新增，注：返回的添加的条数，获取主键用entity.getId();
     *
     * @param entity 要增加的权限信息对象
     * @return 返回新增的条数
     */
    public Integer insert(PermissionVO entity) {
        return this.getSqlSession().insert("insertPermission", entity);
    }
    
    /**
     * 修改
     *
     * @param entity 要修改的权限信息对象
     * @return 返回修改的条数
     */
    public Integer update(PermissionVO entity) {
        return this.getSqlSession().update("updatePermissionById", entity);
    }
    
    /**
     * 根据ID获取权限信息实体
     *
     * @param id 主键
     * @return 权限信息信息
     */
    public PermissionVO findById(String id) {
        return this.getSqlSession().selectOne("selectPermissionById", id);
    }
    
    /**
     * 按查询条件【分页】查询
     *
     * @param param 权限信息查询条件
     * @return 权限信息列表
     */
    public List<PermissionVO> queryByPage(PermissionParam param) {
        return queryList("selectPermissionList", param);
    }
    
    /**
     * 根据ID删除权限信息
     *
     * @param id 主键
     */
    public Integer delete(String id) {
        return this.getSqlSession().delete("deletePermissionById", id);
    }
    
    /**
     * 根据用户ID查询用户权限
     *
     * @param userId 用户ID
     * @return
     */
    public List<String> queryPermissionByUserId(String userId) {
        return this.getSqlSession().selectList("selectPermissionByUserId", userId);
    }
}
